home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / dbsteel1.arc / CSCREEN.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  19KB  |  662 lines

  1. 4 DEFINT A-W,Y-Z
  2. 5 DIM F$(15),FLDN$(17,40),FTY(17,40),FL(17,40) 
  3. 13 DIM L(17),NREC(17)
  4. 16 DIM KY(17,40),KEYLIST(17,40)
  5. 35 DIM K$(80)
  6. 40 DIM SCRN(40),LE(40),CE(40),LEK(40),CEK(40),SW$(19)
  7. 50 DIM SUMF(40)
  8. 70 CH = 29
  9. 75 PRINT FRE(0)
  10. 77 GOSUB 52000
  11. 80 GOSUB 50000
  12. 100 GOTO 1000 
  13. 200 GOTO 40000
  14. 500 REM ******* CLS
  15. 510 CLS 
  16. 520 RETURN
  17. 600 REM ******* LOCATE 20,1
  18. 610 LOCATE 20,1
  19. 620 FOR T3= 1 TO 5
  20. 630 PRINT "                                                                              ";
  21. 640 NEXT T3
  22. 650 LOCATE 20,1
  23. 660 RETURN
  24. 1000 REM ******  INITIAL MENU
  25. 1100 GOSUB 500
  26. 1110 PRINT "**************  WHICH OPTION DO YOU WANT  ****************"
  27. 1130 PRINT "         0 - EXIT PROGRAM"
  28. 1140 PRINT "         1 - ENTER A NEW SCREEN DESCRIPTION"
  29. 1150 PRINT "         2 - READ A SCREEN DESCRIPTION"
  30. 1160 PRINT "         3 - PRINT A SCREEN DESCRIPTION ON PAPER"
  31. 1170 PRINT "         4 - CHANGE A SCREEN DESCRIPTION "
  32. 1200 PRINT "********  ENTER THE NUMBER THEN PRESS RETURN  ************"
  33. 1210 GOSUB 60000
  34. 1215 IF DT# < 0 OR DT# > 4 THEN 1210
  35. 1220 T = DT#
  36. 1230 IF T = 0 THEN GOTO 51000
  37. 1240 ON T GOTO 10000,20000,30000,40000
  38. 8000 REM ***** FILE NAME ACCEPLABLE TEST ************
  39. 8010 TEST = 1
  40. 8100 FOR Q = 1 TO LEN(A$)
  41. 8110 K$(Q) = MID$(A$,Q,1)
  42. 8120 C = ASC(K$(Q))
  43. 8130 IF C < 48 OR C > 122 THEN TEST = 4
  44. 8140 IF Q = 1 AND ( C < 65 OR C > 122 ) THEN TEST = 4
  45. 8150 NEXT Q
  46. 8190 RETURN
  47. 10000 REM ******  ENTER A SCREEN DESCRIPTION
  48. 10100 GOSUB 500
  49. 10200 PRINT "*****  WHICH FILE DO YOU WANT TO ENTER A SCREEN DESCRIPTIN FOR  *****"
  50. 10210 FOR T = 1 TO MAXF
  51. 10220 PRINT T;" - ";F$(T)
  52. 10230 NEXT T
  53. 10300 PRINT "*****  ENTER THE FILE NUMBER THEN PRESS RETURN  *****"
  54. 10310 GOSUB 60000
  55. 10320 IF DT# < 1 OR DT# > MAXF GOTO 10310
  56. 10330 A = DT#
  57. 10500 GOSUB 26000
  58. 10600 SCRN(A) = 5
  59. 10610 GOSUB 25000
  60. 11000 REM *****  INPUT INTRO    
  61. 11100 GOSUB 500
  62. 12000 REM *****  INPUT OVERLAYS
  63. 12100 GOSUB 500
  64. 12110 PRINT " ----5----10---15---20---25---30---35---40---45---50---55---60---65---70---- "
  65. 12120 MAX = 78
  66. 12130 FOR TF= 1 TO 18
  67. 12132 GOSUB 12140
  68. 12134 NEXT TF
  69. 12136 GOTO 13000
  70. 12140 GOSUB 62030
  71. 12150 SW$(TF) = A$
  72. 12160 RETURN
  73. 13000 REM ********  INPUT LOCATIONS OF FIELDS *********
  74. 13100 FOR T = 1 TO NREC(A)
  75. 13110 GOSUB 600
  76. 13112 GOSUB 13120
  77. 13115 NEXT T
  78. 13117 GOTO 14000
  79. 13120 PRINT "FIELD NUMBER :";T;" FIELD NAME :";FLDN$(A,T)
  80. 13130 PRINT "WHICH LINE DO YOU WANT ENTRY ON "
  81. 13400 GOSUB 60000
  82. 13410 IF DT# < 0 OR DT# > 18 THEN 13400
  83. 13420 LE(T) = DT#
  84. 13500 PRINT "WHICH COLUMN DO YOU WANT THE ENTRY TO START AT"
  85. 13510 SPRT = 5
  86. 13600 GOSUB 60000
  87. 13610 IF DT# < 1 OR DT# > 78 THEN 13600
  88. 13620 CE(T) = DT#
  89. 13700 IF FTY(A,T) = 2 AND KY(A,T) = 2 THEN GOSUB 13800
  90. 13710 RETURN
  91. 13800 REM *******
  92. 13820 GOSUB 600
  93. 13830 PRINT "WHICH LINE DO YOU WANT THE KEY PRINTED ON "
  94. 13840 GOSUB 60000
  95. 13850 IF DT# < 0 OR DT# > 18 THEN 13840
  96. 13860 LEK(T) = DT#
  97. 13870 PRINT "WHICH COLUMN DO YOU WANT THE KEY PRINTED ON "
  98. 13875 SPRT = 5
  99. 13880 GOSUB 60000
  100. 13900 IF DT# < 0 OR DT# > 78 THEN 13880
  101. 13910 CEK(T) = DT#
  102. 13920 RETURN
  103. 14000 REM ******* PUT DATA ON FILES 
  104. 14010 GOSUB 15000
  105. 14100 A$ = STR$(A)
  106. 14110 A$ = MID$(A$,2)
  107. 14120 A$ = "SCREEN" + A$
  108. 14200 GOSUB 27000
  109. 14300 GOTO 1000
  110. 15000 REM ********  REPEATING FIELDS
  111. 15100 GOSUB 500
  112. 15200 PRINT "  DO YOU WANT TO USE THE REPEATING FIELDS OPTION  "
  113. 15210 PRINT ""
  114. 15220 PRINT "           1 - NO "
  115. 15230 PRINT "           2 - YES"
  116. 15300 PRINT ""
  117. 15310 PRINT "*****  ENTER THE NUMBER THEN PRESS RETURN  *****"
  118. 15320 GOSUB 60000
  119. 15330 IF DT# < 1 OR DT# > 2 THEN 15320
  120. 15340 RPT = DT#
  121. 15350 IF RPT = 1 THEN RETURN
  122. 15400 REM ******  INPUTING DATA 
  123. 15410 GOSUB 500
  124. 15415 PRINT "********  WHICH FIELD IS THE LAST EQUAL FIELD  ********"
  125. 15420 FOR T = 1 TO NREC(A)
  126. 15430 PRINT T;" - ";FLDN$(A,T)
  127. 15440 NEXT T
  128. 15450 PRINT "******  ENTER THE NUMBER THEN PRESS RETURN  ******"
  129. 15460 GOSUB 60000
  130. 15470 IF DT# < 1 OR DT# > NREC(A) THEN  15460
  131. 15480 LSTE = DT#
  132. 15500 REM ******  INPUTING FIELDS TO SUM
  133. 15510 GOSUB 500
  134. 15520 T2 = LSTE + 1
  135. 15530 FOR T = T2 TO NREC(A)
  136. 15540 GOSUB 500
  137. 15550 PRINT T;" - ";FLDN$(A,T)
  138. 15560 PRINT "*****  DO YOU WANT THIS FIELD SUMMED  *****"
  139. 15570 PRINT "          1 - NO "
  140. 15580 PRINT "          2 - YES , SUM THIS FIELD "
  141. 15590 PRINT "***** ENTER THE NUMBER THEN PRESS RETURN  *****"
  142. 15600 GOSUB 60000
  143. 15610 IF DT# < 1 OR DT# > 2 THEN 15600
  144. 15615 IF FTY(A,T) = 1 AND DT# = 2 THEN 15600
  145. 15620 SUMF(T) = DT#
  146. 15630 NEXT T
  147. 15640 RETURN
  148. 20000 REM *******  READ A SCREEN DESCRIPTION 
  149. 20100 GOSUB 500
  150. 20110 GOSUB 26000
  151. 20120 PRINT "*******  WHICH SCREEN DO YOU WANT TO SEE  *******"
  152. 20130 FOR T = 1 TO MAXF
  153. 20140 IF SCRN(T) <> 0 THEN PRINT T;" - ";F$(T)
  154. 20150 NEXT T
  155. 20160 PRINT "*****  ENTER THE NUMBER THEN PRESS RETURN   *****"
  156. 20170 GOSUB 60000
  157. 20180 IF DT# < 1 OR DT# > MAXF THEN 20170
  158. 20190 IF SCRN(DT#) = 0 THEN 20170
  159. 20200 A = DT#
  160. 20300 REM ******* GET FILE
  161. 20310 A$ = STR$(A)
  162. 20320 A$ = MID$(A$,2)
  163. 20330 A$ = "SCREEN"+A$
  164. 20340 GOSUB 28000
  165. 20400 REM ******* PRINT OVERLAYS
  166. 20410 GOSUB 500
  167. 20420 PRINT "******** TOP LINE RESERVED FOR FILE NAME AND RECORD NUMBER  *********"
  168. 20430 FOR T = 1 TO 18
  169. 20440 PRINT SW$(T)
  170. 20450 NEXT T
  171. 20460 PRINT "********  PRESS ANY KEY TO CONTINUE  ********"
  172. 20470 IF INKEY$ = "" THEN 20470
  173. 20500 REM ******* PRINT FIELD LOCATIONS
  174. 20510 GOSUB 500
  175. 20515 PRINT "   FIELD                   LINE       COLUMN     KEY LINE   KEY COLUMN"
  176. 20520 FOR T = 1 TO NREC(A)
  177. 20530 PRINT T;FLDN$(A,T) TAB(30) LE(T); TAB(40) CE(T);
  178. 20540 IF FTY(A,T) = 2 THEN PRINT TAB(50) LEK(T);TAB(60) CEK(T);
  179. 20550 PRINT ""
  180. 20560 NEXT T
  181. 20600 PRINT "*********  PRESS ANY KEY TO CONTINUE  ************"
  182. 20610 IF INKEY$ = "" THEN 20610
  183. 20800 GOSUB 21000
  184. 20900 GOTO 1000
  185. 21000 REM ******  PRINT REPEATING FIELDS
  186. 21100 GOSUB 500
  187. 21110 IF RPT = 2 THEN GOTO 21200
  188. 21120 PRINT "  NO REPEATING FIELDS SPECIFIED "
  189. 21130 PRINT ""
  190. 21140 PRINT "*****  PRESS ANY KET TO CONTINUE  ******"
  191. 21150 IF INKEY$ = "" THEN 21150
  192. 21160 RETURN
  193. 21200 REM ********  PRINT REPEATING FIELDS 
  194. 21210 PRINT "REPEATING FIELDS SPECIFIED "
  195. 21220 PRINT "LAST EQUAL FIELD IS FIELD NUMBER ";LSTE;" - ";FLDN$(A,LSTE)
  196. 21230 PRINT ""
  197. 21240 PRINT "THE REPEATING FIELDS ARE : "
  198. 21250 T2 = LSTE + 1
  199. 21260 FOR T = T2 TO NREC(A)
  200. 21270 PRINT T;" - ";FLDN$(A,T);
  201. 21280 IF SUMF(T) = 2 THEN PRINT "  -THIS FIELD IS SUMMED ";
  202. 21285 PRINT ""
  203. 21290 NEXT T
  204. 21300 PRINT ""
  205. 21310 PRINT " PRESS ANY KEY TO CONTINUE "
  206. 21320 IF INKEY$ = "" THEN 21320
  207. 21330 RETURN
  208. 23780 REM *************  READ SUBROUTINE  *************
  209. 23800 OPEN "I",#1,"FFILE"
  210. 23820 INPUT #1,MAXF
  211. 23840 FOR A = 1 TO MAXF
  212. 23860 INPUT #1,A,F$(A),NREC(A),L(A)
  213. 23880 FOR N = 1 TO NREC(A)
  214. 23900 INPUT #1,FLDN$(A,N),FTY(A,N),FL(A,N)
  215. 23920 IF FTY(A,N) = 2 THEN INPUT #1,KY(A,N),KEYLIST(A,N)
  216. 23940 NEXT N
  217. 23960 NEXT A
  218. 23980 CLOSE #1
  219. 24000 RETURN
  220. 25000 REM ************ WRITE SCREEN TEST *********
  221. 25100 OPEN "O",#1,"SCTEST"
  222. 25200 FOR T = 1 TO 40
  223. 25300 WRITE #1,SCRN(T)
  224. 25400 NEXT T
  225. 25500 CLOSE #1
  226. 25600 RETURN
  227. 26000 REM ************ READ SCREEN TEST *********
  228. 26100 OPEN "I",#1,"SCTEST"
  229. 26200 FOR T = 1 TO 40
  230. 26300 INPUT #1,SCRN(T)
  231. 26400 NEXT T
  232. 26500 CLOSE #1
  233. 26600 RETURN
  234. 27000 REM ************  WRITE SCREEN DESCRIPTION  *********
  235. 27100 OPEN "O",#1,A$
  236. 27110 FOR T = 1 TO 18 
  237. 27120 WRITE #1,SW$(T)
  238. 27130 NEXT T
  239. 27210 FOR T = 1 TO NREC(A)
  240. 27220 WRITE #1,LE(T),CE(T)
  241. 27230 IF FTY(A,T) = 2 THEN WRITE #1,LEK(T),CEK(T)
  242. 27240 NEXT T
  243. 27242 WRITE #1,RPT
  244. 27244 IF RPT = 2 THEN GOSUB 27400
  245. 27250 CLOSE #1
  246. 27300 RETURN
  247. 27400 WRITE #1,LSTE
  248. 27410 T2 = LSTE + 1
  249. 27420 FOR T = T2 TO NREC(A)
  250. 27430 WRITE #1,SUMF(T)
  251. 27440 NEXT T
  252. 27450 RETURN
  253. 28000 REM ************  READ SCREEN DESCRIPTION  *********
  254. 28100 OPEN "I",#1,A$
  255. 28110 FOR T = 1 TO 18 
  256. 28120 INPUT #1,SW$(T)
  257. 28130 NEXT T
  258. 28210 FOR T = 1 TO NREC(A)
  259. 28220 INPUT #1,LE(T),CE(T)
  260. 28230 IF FTY(A,T) = 2 THEN INPUT #1,LEK(T),CEK(T)
  261. 28240 NEXT T
  262. 28242 INPUT #1,RPT
  263. 28244 IF RPT = 2 THEN GOSUB 28400
  264. 28250 CLOSE #1
  265. 28300 RETURN
  266. 28400 INPUT #1,LSTE
  267. 28410 T2 = LSTE + 1
  268. 28420 FOR T = T2 TO NREC(A)
  269. 28430 INPUT #1,SUMF(T)
  270. 28440 NEXT T
  271. 28450 RETURN
  272. 30000 REM ******* PRINT A SCREEN DESCRIPTION ON PAPER
  273. 30100 GOSUB 500
  274. 30110 GOSUB 26000
  275. 30115 PRINT "**************  MAKE SURE YOUR PRINTER IS ON  **************"
  276. 30120 PRINT "*******  WHICH SCREEN DO YOU WANT TO PRINT ON PAPER  *******"
  277. 30130 FOR T = 1 TO MAXF
  278. 30140 IF SCRN(T) <> 0 THEN PRINT T;" - ";F$(T)
  279. 30150 NEXT T
  280. 30160 PRINT "***********  ENTER THE NUMBER THEN PRESS RETURN   *********"
  281. 30170 GOSUB 60000
  282. 30180 IF DT# < 1 OR DT# > MAXF THEN 30170
  283. 30190 IF SCRN(DT#) = 0 THEN 30170
  284. 30200 A = DT#
  285. 30300 REM ******* GET FILE
  286. 30310 A$ = STR$(A)
  287. 30320 A$ = MID$(A$,2)
  288. 30330 A$ = "SCREEN"+A$
  289. 30340 GOSUB 28000
  290. 30400 REM ******* PRINT OVERLAYS
  291. 30410 GOSUB 500
  292. 30420 LPRINT "******** TOP LINE RESERVED FOR FILE NAME AND RECORD NUMBER  *********"
  293. 30430 FOR T = 1 TO 18
  294. 30440 LPRINT SW$(T)
  295. 30450 NEXT T
  296. 30500 REM ******* PRINT FIELD LOCATIONS
  297. 30510 GOSUB 500
  298. 30515 LPRINT "   FIELD                   LINE       COLUMN     KEY LINE   KEY COLUMN"
  299. 30520 FOR T = 1 TO NREC(A)
  300. 30530 LPRINT T;FLDN$(A,T) TAB(30) LE(T); TAB(40) CE(T);
  301. 30540 IF FTY(A,T) = 2 THEN LPRINT TAB(50) LEK(T);TAB(60) CEK(T);
  302. 30550 LPRINT ""
  303. 30560 NEXT T
  304. 30800 GOSUB 31000
  305. 30900 GOTO 1000
  306. 31000 REM ******  PRINT REPEATING FIELDS
  307. 31110 IF RPT = 2 THEN GOTO 31200
  308. 31120 LPRINT "  NO REPEATING FIELDS SPECIFIED "
  309. 31160 RETURN
  310. 31200 REM ********  PRINT REPEATING FIELDS 
  311. 31210 LPRINT "REPEATING FIELDS SPECIFIED "
  312. 31220 LPRINT "LAST EQUAL FIELD IS FIELD NUMBER ";LSTE;" - ";FLDN$(A,LSTE)
  313. 31230 LPRINT ""
  314. 31240 LPRINT "THE REPEATING FIELDS ARE : "
  315. 31250 T2 = LSTE + 1
  316. 31260 FOR T = T2 TO NREC(A)
  317. 31270 LPRINT T;" - ";FLDN$(A,T);
  318. 31280 IF SUMF(T) = 2 THEN LPRINT "  -THIS FIELD IS SUMMED ";
  319. 31285 LPRINT ""
  320. 31290 NEXT T
  321. 31300 RETURN
  322. 40000 REM *******  CHANGE A SCREEN DESCRIPTION
  323. 40100 GOSUB 500
  324. 40110 GOSUB 26000
  325. 40120 PRINT "*******  WHICH SCREEN DO YOU WANT TO CHANGE  ******"
  326. 40130 FOR T = 1 TO MAXF
  327. 40140 IF SCRN(T) <> 0 THEN PRINT T;" - ";F$(T)
  328. 40150 NEXT T
  329. 40160 PRINT "*****  ENTER THE NUMBER THEN PRESS RETURN   *****"
  330. 40170 GOSUB 60000
  331. 40180 IF DT# < 1 OR DT# > MAXF THEN 20170
  332. 40190 IF SCRN(DT#) = 0 THEN 20170
  333. 40200 A = DT#
  334. 40300 REM ******* GET FILE
  335. 40310 A$ = STR$(A)
  336. 40320 A$ = MID$(A$,2)
  337. 40330 A$ = "SCREEN"+A$
  338. 40335 AH$ = A$
  339. 40340 GOSUB 28000
  340. 41000 REM ******* CHANGE MENU 
  341. 41100 GOSUB 500
  342. 41110 PRINT "**********  WHAT TYPE OF CHANGE  ***********"
  343. 41120 PRINT "     0 - NO CHANGE / DONE WITH CHANGE
  344. 41130 PRINT "     1 - CHANGE THE LOCATION OF A FIELD "
  345. 41140 PRINT "     2 - CHANGE AN OVERLAY LINE "
  346. 41145 PRINT "     3 - CHANGE THE REPEATING FIELDS"
  347. 41150 PRINT "****  ENTER THE NUMBER THEN PRESS RETURN  ****"
  348. 41200 GOSUB 60000
  349. 41210 IF DT# < 0 OR DT# > 3 THEN 41200
  350. 41220 T = DT#
  351. 41225 T = T + 1
  352. 41230 ON T GOTO 41300,42000,43000,44000
  353. 41300 REM ****** DONE WRITE TO FILE 
  354. 41305 A$ = AH$
  355. 41310 GOSUB 27000
  356. 41320 GOTO 1000
  357. 42000 REM ********  CHANGE THE LOCATION OF A FIELD
  358. 42100 GOSUB 500
  359. 42110 PRINT "*****  WHICH FIELD LOCATION DO YOU WANT TO CHANGE  *****"
  360. 42120 FOR T = 1 TO NREC(A)
  361. 42130 PRINT T;" - ";FLDN$(A,T)
  362. 42140 NEXT T
  363. 42150 PRINT "***** ENTER THE NUMBER THE PRESS RETURN  ******"
  364. 42160 GOSUB 60000
  365. 42170 IF DT# < 1 OR DT# > NREC(A) THEN 42160
  366. 42180 T = DT#
  367. 42190 GOSUB 13120
  368. 42200 GOTO 41000
  369. 43000 REM ********  CHANGE OVERLAY LINE
  370. 43100 PRINT "WHICH LINE DO YOU WANT TO CHANGE "
  371. 43200 GOSUB 60000
  372. 43210 IF DT# < 1 OR DT# > 18 THEN 43200
  373. 43220 TF = DT#
  374. 43230 PRINT "ENTER THE NEW OVERLAY LINE "
  375. 43240 MAX = 78
  376. 43250 GOSUB 12140
  377. 43300 GOTO 41000
  378. 44000 REM ******  CHANGE THE REPEATING FIELDS
  379. 44100 GOSUB 15000
  380. 44200 GOTO 41000
  381. 50000 REM **********  INTRO
  382. 50010 GOSUB 500
  383. 50100 PRINT "  S C R E E N    D E S C R I P T I O N    P R O G R A M    3.0   "
  384. 50105 PRINT ""
  385. 50110 PRINT "      Copyright 1984 by Potomac Pacific Engineering Inc."
  386. 50120 PRINT ""
  387. 50130 PRINT "This program is licensed FREE to all users with some restrictions"
  388. 50165 PRINT "        See the manual for more information on the license."
  389. 50167 PRINT ""
  390. 50920 GOSUB 23780
  391. 50950 PRINT "******************  PRESS ANY KEY TO CONTINUE  *****************";
  392. 50960 IF INKEY$ = "" GOTO 50960
  393. 50970 RETURN
  394. 51000 REM ***** EXIT TO SYSTEM
  395. 51100 GOSUB 500
  396. 51110 CLOSE
  397. 51120 PRINT " -BYE, Have a nice day"
  398. 51130 END
  399. 52000 REM ***** INTRO 1
  400. 52010 GOSUB 500
  401. 52100 PRINT "           Put the DATA DISK in the default disk drive  "
  402. 52110 PRINT ""
  403. 52120 PRINT "          *****  THEN PRESS ANY KEY TO CONTINUE  *****"
  404. 52130 PRINT ""
  405. 52140 PRINT "      The  CUSTOM  programs only use the PROGRAM DATA DISK"
  406. 52150 PRINT "Keep it in the default disk drive at all times during this program."
  407. 52200 IF INKEY$ = "" GOTO 52200
  408. 52210 RETURN
  409. 60000 REM *******  INTEGER LESS THEN 100 CHECK  ********
  410. 60010 MAX = 2
  411. 60020 ACT$ = "1234567890=<>^"
  412. 60030 IF NE = 0 THEN ACT$ = "1234567890"
  413. 60040 PRINT ">__<";
  414. 60050 GOTO 60240
  415. 60060 REM *******  INTEGER *******                        
  416. 60070 MAX = 8
  417. 60080 ACT$ = "1234567890-+,=<>^"
  418. 60090 IF NE = 0 THEN ACT$ = "1234567890-+,"
  419. 60100 PRINT ">________<";
  420. 60110 GOTO 60240
  421. 60120 REM *******  SINGLE PRECISION  *******                        
  422. 60130 MAX = 10
  423. 60140 ACT$ = "1234567890-+,.%$=<>^"
  424. 60150 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  425. 60160 PRINT ">__________<";
  426. 60170 GOTO 60240
  427. 60180 REM *******  DOUBLE PRECISION  *******                        
  428. 60190 MAX = 20
  429. 60200 ACT$ = "1234567890-+,.%$=<>^"
  430. 60210 IF NE = 0 THEN ACT$ = "1234567890+-,.%$"
  431. 60220 PRINT ">____________________<";
  432. 60230 GOTO 60240
  433. 60240 REM ********** NUMBER CHECK **********
  434. 60250 A$ = ""
  435. 60260 K$(20) = " "
  436. 60270 KTMAX = 0
  437. 60280 FOR T9 = 1 TO MAX
  438. 60290 K$(T9) = " "
  439. 60300 NEXT T9
  440. 60310 DIG$ = "1234567890."
  441. 60320 DOTFLG = 0
  442. 60330 T2 = MAX + 1
  443. 60340 FOR T6 = 1 TO T2
  444. 60350 PRINT CHR$(CH);
  445. 60360 NEXT T6
  446. 60370 IF INKEY$ = "" GOTO 60380 ELSE GOTO 60370
  447. 60380 KT = 0
  448. 60390 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  449. 60400 KT = KT + 1
  450. 60410 REM     
  451. 60420 W$ = INKEY$
  452. 60430 IF W$ = "" GOTO 60420
  453. 60440 C = ASC(W$)
  454. 60450 IF C = 0 THEN GOSUB 61900
  455. 60460 IF C = 13 GOTO 60580
  456. 60470 IF C = 17 OR C = 8 GOTO 61150
  457. 60480 IF C = 19 GOTO 60670
  458. 60490 IF C = 4 GOTO 60720
  459. 60500 IF C = 6 GOTO 60780
  460. 60510 IF C = 1 GOTO 60960
  461. 60520 IF KT > MAX GOTO 60410
  462. 60530 IF INSTR(ACT$,W$) = 0 GOTO 61230
  463. 60540 K$(KT) = W$
  464. 60550 PRINT K$(KT);
  465. 60560 IF KT > KTMAX THEN KTMAX = KT
  466. 60570 GOTO 60400
  467. 60580 REM **********  RETURN  **********
  468. 60590 FOR T9 = 1 TO KTMAX
  469. 60600 A$ = A$ + K$(T9)
  470. 60610 NEXT T9
  471. 60620 IF KTMAX = 0 THEN PRINT "1";
  472. 60630 IF KTMAX = 0 THEN DT# = 1
  473. 60650 IF SPRT < 5 THEN PRINT ""
  474. 60652 SPRT = 0
  475. 60655 IF KTMAX = 0 THEN RETURN
  476. 60660 GOTO 61260
  477. 60670 REM ********* MOVE CURSE BACK ********
  478. 60680 IF KT = 1 GOTO 60410
  479. 60690 KT = KT - 1
  480. 60700 PRINT CHR$(CH);
  481. 60710 GOTO 60410
  482. 60720 REM ********* MOVE CURSER FORWARD *********
  483. 60730 IF KT >= MAX GOTO 60410
  484. 60740 IF KT > (KTMAX + 1) GOTO 60410
  485. 60750 PRINT K$(KT);
  486. 60760 KT = KT + 1
  487. 60770 GOTO 60410
  488. 60780 REM ********** INSERT ***********
  489. 60790 IF KT > KTMAX GOTO 60410
  490. 60800 X9 = MAX
  491. 60810 WHILE X9 > KT
  492. 60820 X9 = X9 - 1
  493. 60830 K$(X9 + 1) = K$(X9)
  494. 60840 WEND 
  495. 60850 K$(KT) = " "
  496. 60860 KTMAX = KTMAX + 1
  497. 60870 IF KTMAX > MAX THEN KTMAX = MAX
  498. 60880 FOR T9 = KT TO KTMAX
  499. 60890 PRINT K$(T9);
  500. 60900 NEXT T9
  501. 60910 T6 = (KTMAX - KT) + 1
  502. 60920 FOR T7 = 1 TO T6
  503. 60930 PRINT CHR$(CH);
  504. 60940 NEXT T7
  505. 60950 GOTO 60410
  506. 60960 REM ********** DELETE ***********
  507. 60970 IF KT > KTMAX GOTO 60410
  508. 60980 IF KTMAX = 1 GOTO 60410
  509. 60990 K$(MAX + 1) = ""
  510. 61000 X9 = KT 
  511. 61010 WHILE X9 <= MAX
  512. 61020 K$(X9) = K$(X9 + 1)
  513. 61030 X9 = X9 + 1
  514. 61040 WEND 
  515. 61050 KTMAX = KTMAX - 1
  516. 61060 FOR T9 = KT TO KTMAX
  517. 61070 PRINT K$(T9);
  518. 61080 NEXT T9
  519. 61090 PRINT "_";
  520. 61100 T7 = (KTMAX - KT) + 2
  521. 61110 FOR T8 = 1 TO T7
  522. 61120 PRINT CHR$(CH);
  523. 61130 NEXT T8
  524. 61140 GOTO 60410
  525. 61150 REM ********* BACKSPACE ********
  526. 61160 IF KT = 1 GOTO 60410
  527. 61170 KT = KT - 1
  528. 61180 PRINT CHR$(CH);
  529. 61190 K$(KT) = " " 
  530. 61200 PRINT "_";
  531. 61210 PRINT CHR$(CH);
  532. 61220 GOTO 60410
  533. 61230 REM *******  INPUT NOT ACCEPTABLE  ********
  534. 61240 PRINT CHR$(7);
  535. 61250 GOTO 60420
  536. 61260 REM ********* CLEAR STRINGS ********
  537. 61270 MAX = LEN(A$)
  538. 61280 D2$ = ""
  539. 61290 D1$ = ""
  540. 61300 DFLG = 0
  541. 61310 FOR Q93 = 1 TO MAX
  542. 61320 R$ = MID$(A$,Q93,1)
  543. 61330 IF INSTR(DIG$,R$) = 0 GOTO 61400
  544. 61340 IF R$ = "." OR DFLG = 1 GOTO 61380
  545. 61350 IF DFLG = 1 GOTO 61380
  546. 61360 D2$ = D2$ + R$
  547. 61370 GOTO 61400
  548. 61380 D1$ = D1$ + R$
  549. 61390 DFLG = 1
  550. 61400 NEXT Q93
  551. 61410 DA# = VAL(D2$)
  552. 61420 D1# = VAL(D1$)
  553. 61430 DT# = DA# + D1#
  554. 61440 IF K$(1) = "-" THEN DT# =  -DT#   
  555. 61450 RETURN
  556. 61900 REM ****** CHECK FOR ASC0
  557. 61910 S4$ = INKEY$
  558. 61920 C2 =  ASC(S4$)
  559. 61930 IF C2 = 83 THEN C = 1
  560. 61940 IF C2 = 82 THEN C = 6
  561. 61950 IF C2 = 75 THEN C = 19
  562. 61960 IF C2 = 77 THEN C = 4 
  563. 61970 RETURN
  564. 62000 REM **********  ALPHANUMERIC CHECK  **************
  565. 62010 MAX = FL(A,Q)
  566. 62020 GOTO 62040
  567. 62030 REM ********  MAX SET IN PROGRAM  ********
  568. 62040 A$ = ""
  569. 62050 PRINT ">"; 
  570. 62060 FOR N9 = 1 TO MAX
  571. 62070 K$(N9) = ""
  572. 62080 PRINT "_";
  573. 62090 NEXT N9
  574. 62100 PRINT "<";
  575. 62110 T2 = MAX + 1
  576. 62120 FOR T4 = 1 TO T2
  577. 62130 PRINT CHR$(CH);
  578. 62140 NEXT T4
  579. 62150 KT = 0
  580. 62160 KTMAX = 1
  581. 62170 REM ***********  CHECK ALFANUMERIC INPUT FOR LENGTH  ***********
  582. 62180 KT = KT + 1
  583. 62190 PRINT TAB(KT+1)"";
  584. 62200 K$ = INKEY$
  585. 62210 IF K$ = "" GOTO 62200
  586. 62220 C = ASC(K$)
  587. 62230 IF C = 0 THEN GOSUB 61900
  588. 62240 IF C = 13 GOTO 62350
  589. 62250 IF C = 17 OR C = 8 GOTO 62920
  590. 62260 IF C = 19 GOTO 62450
  591. 62270 IF C = 4  GOTO 62500
  592. 62280 IF C = 6 GOTO 62560
  593. 62290 IF C = 1 GOTO 62730
  594. 62300 IF KT > MAX GOTO 62190
  595. 62310 K$(KT) = K$
  596. 62320 PRINT K$(KT);
  597. 62330 IF KT > KTMAX THEN KTMAX = KT
  598. 62340 GOTO 62180
  599. 62350 REM **********  RETURN  **********
  600. 62360 FOR T9 = 1 TO MAX
  601. 62370 A$ = A$ + K$(T9)
  602. 62420 NEXT T9
  603. 62430 PRINT "" 
  604. 62440 RETURN  
  605. 62450 REM ********* MOVE CURSE BACK ********
  606. 62460 IF KT = 1 GOTO 62190
  607. 62470 KT = KT - 1
  608. 62480 PRINT CHR$(CH);
  609. 62490 GOTO 62190
  610. 62500 REM ********* MOVE CURSER FORWARD *********
  611. 62510 IF KT >= MAX GOTO 62190
  612. 62520 IF KT >  KTMAX  GOTO 62190
  613. 62530 PRINT K$(KT);
  614. 62540 KT = KT + 1
  615. 62550 GOTO 62190
  616. 62560 REM ********** INSERT ***********
  617. 62570 X9 = MAX
  618. 62580 WHILE X9 > KT
  619. 62590 X9 = X9 - 1
  620. 62600 K$(X9 + 1) = K$(X9)
  621. 62610 WEND 
  622. 62620 K$(KT) = " "
  623. 62630 KTMAX = KTMAX + 1
  624. 62640 IF KTMAX > MAX THEN KTMAX = MAX
  625. 62650 FOR T9 = KT TO KTMAX
  626. 62660 PRINT K$(T9);
  627. 62670 NEXT T9
  628. 62680 T6 = (KTMAX - KT) +1
  629. 62690 FOR T7 = 1 TO T6
  630. 62700 PRINT CHR$(CH);
  631. 62710 NEXT T7
  632. 62720 GOTO 62190
  633. 62730 REM ********** DELETE ***********
  634. 62740 IF KT > KTMAX GOTO 62200
  635. 62750 IF KTMAX = 1 GOTO 62190
  636. 62760 K$(MAX + 1) = ""
  637. 62770 X9 = KT 
  638. 62780 WHILE X9 <= KTMAX
  639. 62790 K$(X9) = K$(X9 + 1)
  640. 62800 X9 = X9 + 1
  641. 62810 WEND 
  642. 62820 KTMAX = KTMAX - 1
  643. 62830 FOR T9 = KT TO KTMAX
  644. 62840 PRINT K$(T9);
  645. 62850 NEXT T9
  646. 62860 PRINT "_";
  647. 62870 T7 = (KTMAX - KT) + 2
  648. 62880 FOR T6 = 1 TO T7
  649. 62890 PRINT CHR$(CH);
  650. 62900 NEXT T6
  651. 62910 GOTO 62190
  652. 62920 REM ********* BACKSPACE ********
  653. 62930 IF KT = 1 GOTO 62190
  654. 62940 K$(KT) = " "
  655. 62950 KT = KT - 1
  656. 62960 K$(KT) = " "
  657. 62970 PRINT CHR$(CH);
  658. 62980 PRINT "_";
  659. 62990 PRINT CHR$(CH);
  660. 63000 GOTO 62190
  661.  " "
  662. 6